/**
 * @author: clearlove
 * @file: auth.ts
 * @description: 微信登录相关
 */
import Taro from '@tarojs/taro'

interface UserInfo {
  avatarUrl: string
  nickName: string
}

// 获取微信登录凭证
export const getWxLoginCode = async (): Promise<string> => {
  try {
    const { code } = await Taro.login()
    return code
  } catch (error) {
    console.error('获取登录凭证失败：', error)
    throw error
  }
}

// TODO: 操作示例
// 使用示例
export const loginAndGetUserInfo = async () => {
  try {
    // 先获取登录code
    const code = await getWxLoginCode()
    // 然后获取用户信息
    const userInfo = await getUserProfile()
    // 处理用户信息
  } catch (error) {
    // 处理错误
  }
}

// 获取用户信息
export const getUserProfile = async (): Promise<UserInfo> => {
  try {
    const { userInfo } = await Taro.getUserProfile({
      desc: '用于完善会员资料',
      lang: 'zh_CN'
    })
    console.log('🚀 clearlove  - Log ~ getUserProfile ~ userInfo: ', userInfo)
    return {
      avatarUrl: userInfo.avatarUrl,
      nickName: userInfo.nickName
    }
  } catch (error) {
    console.error('获取用户信息失败：', error)
    throw error
  }
}